package com.harold.base;

import android.webkit.JavascriptInterface;
import android.widget.Toast;

import com.harold.jstest.MainActivity;

/**
 * 回调对像
 ***************************************************** 
 * <hr>
 * <dt><span class="strong">类功能简介:</span></dt>
 * <dd>回调对像</dd>
 * <dt><span class="strong">创建时间:</span></dt>
 * <dd>2014-8-27 上午11:39:26</dd>
 * <dt><span class="strong">公司:</span></dt>
 * <dd>CorpIt</dd>
 * 
 * @author aa1000777 - Email:aa1000777@qq.com
 ***************************************************** 
 */
public class JSKit {
	private MainActivity ma;

	public JSKit(MainActivity context) {
		this.ma = context;
	}

	/**
	 * 
	 ***************************************************** 
	 * 方法简介: 4.2之前向webview注入的对象所暴露的接口toString没有注释语句@JavascriptInterface，而4.2
	 * 及以后的则多了注释语句@JavascriptInterface
	 * 
	 * 经过查官方文档所知，因为这个接口允许JavaScript
	 * 控制宿主应用程序，这是个很强大的特性，但同时，在4.2的版本前存在重大安全隐患，因为JavaScript
	 * 可以使用反射访问注入webview的java对象的public
	 * fields，在一个包含不信任内容的WebView中使用这个方法，会允许攻击者去篡改宿主应用程序
	 * ，使用宿主应用程序的权限执行java代码。因此4.2以后，任何为JS暴露的接口，都需要加@JavascriptInterface
	 * 
	 * @param msg
	 ***************************************************** 
	 */
	@JavascriptInterface
	public void showMsg(String msg) {
		Toast.makeText(ma, msg, Toast.LENGTH_SHORT).show();
	}
}
